package cn.openea.perpartner.system.service;

import cn.openea.perpartner.common.core.web.domain.AjaxResult;
import cn.openea.perpartner.system.entity.SysUser;
import cn.openea.perpartner.system.entity.dto.UserCacheDto;
import cn.openea.perpartner.system.entity.dto.UserInfoDto;
import com.github.yulichang.base.MPJBaseService;

import java.util.List;


/**
 * @author Weird077
 */
public interface ISysUserService extends MPJBaseService<SysUser> {
    /**
     * 校验用户名和密码是否正确
     * @param username 用户名
     * @param password 密码
     */
    AjaxResult checkUser(String username, String password);
    /**
     * 根据userid校验用户是否存在
     * @param userid 用户身份id
     */
    String checkUserUnique(String userid);
    /**
     * 根据userid查询用户信息
     * @param userid 用户身份id
     */
    SysUser findUser(String userid);

    List<UserInfoDto> selectAsyncList(String startTime, String endTime,String appid);

    UserInfoDto selectByUserId(String userid,String appId);

    UserCacheDto selectUserCacheByUserId(String userid);
    List<UserCacheDto> selectUserCacheList(List<String> userIds);

    boolean removeUserCache();

    boolean removeCacheByUserId(String userId);

    boolean updateUserInfo(SysUser user);

    void updateUserCache(SysUser user);

    List<UserCacheDto> initUserCacheList();

    boolean resetPwd(String userid, String password);
    boolean removeBatchByUserIds(List<String> idList);

    boolean improveSubOpenid();
}
